package com.jc.domain.user;

import com.jc.repository.domain.CanonicalDomain;
import com.jc.repository.dict.user.UserBusiSetInfoTransStatus;
import com.jc.repository.dict.user.UserBusiSetInfoTransType;
import com.jc.repository.dict.user.UserBusiSetInfoType;
import com.jc.repository.dict.user.UserBusiSetInfoNewFlag;

import java.io.Serializable;
import java.util.Date;

public class UserBusiSetInfo extends CanonicalDomain<Long> implements Serializable {
    private Long id;

    private String saleUserId;

    private String buyUserId;

    private String toySetId;

    private UserBusiSetInfoType busiType;

    private Integer amount;

    private Double buyPrice;

    private UserBusiSetInfoNewFlag newFlag;

    private String transPrice;

    private UserBusiSetInfoTransType transType;

    private String transAreaId;

    private UserBusiSetInfoTransStatus transStatus;

    private Date createdAt;

    private Date updatedAt;

    private String remarks;

    private static final long serialVersionUID = 1L;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getSaleUserId() {
        return saleUserId;
    }

    public void setSaleUserId(String saleUserId) {
        this.saleUserId = saleUserId;
    }

    public String getBuyUserId() {
        return buyUserId;
    }

    public void setBuyUserId(String buyUserId) {
        this.buyUserId = buyUserId;
    }

    public String getToySetId() {
        return toySetId;
    }

    public void setToySetId(String toySetId) {
        this.toySetId = toySetId;
    }

    public UserBusiSetInfoType getBusiType() {
        return busiType;
    }

    public void setBusiType(UserBusiSetInfoType busiType) {
        this.busiType = busiType;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public Double getBuyPrice() {
        return buyPrice;
    }

    public void setBuyPrice(Double buyPrice) {
        this.buyPrice = buyPrice;
    }

    public UserBusiSetInfoNewFlag getNewFlag() {
        return newFlag;
    }

    public void setNewFlag(UserBusiSetInfoNewFlag newFlag) {
        this.newFlag = newFlag;
    }

    public String getTransPrice() {
        return transPrice;
    }

    public void setTransPrice(String transPrice) {
        this.transPrice = transPrice;
    }

    public UserBusiSetInfoTransType getTransType() {
        return transType;
    }

    public void setTransType(UserBusiSetInfoTransType transType) {
        this.transType = transType;
    }

    public String getTransAreaId() {
        return transAreaId;
    }

    public void setTransAreaId(String transAreaId) {
        this.transAreaId = transAreaId;
    }

    public UserBusiSetInfoTransStatus getTransStatus() {
        return transStatus;
    }

    public void setTransStatus(UserBusiSetInfoTransStatus transStatus) {
        this.transStatus = transStatus;
    }

    public Date getCreatedAt() {
        return createdAt;
    }

    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }

    public Date getUpdatedAt() {
        return updatedAt;
    }

    public void setUpdatedAt(Date updatedAt) {
        this.updatedAt = updatedAt;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        UserBusiSetInfo other = (UserBusiSetInfo) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getSaleUserId() == null ? other.getSaleUserId() == null : this.getSaleUserId().equals(other.getSaleUserId()))
            && (this.getBuyUserId() == null ? other.getBuyUserId() == null : this.getBuyUserId().equals(other.getBuyUserId()))
            && (this.getToySetId() == null ? other.getToySetId() == null : this.getToySetId().equals(other.getToySetId()))
            && (this.getBusiType() == null ? other.getBusiType() == null : this.getBusiType().equals(other.getBusiType()))
            && (this.getAmount() == null ? other.getAmount() == null : this.getAmount().equals(other.getAmount()))
            && (this.getBuyPrice() == null ? other.getBuyPrice() == null : this.getBuyPrice().equals(other.getBuyPrice()))
            && (this.getNewFlag() == null ? other.getNewFlag() == null : this.getNewFlag().equals(other.getNewFlag()))
            && (this.getTransPrice() == null ? other.getTransPrice() == null : this.getTransPrice().equals(other.getTransPrice()))
            && (this.getTransType() == null ? other.getTransType() == null : this.getTransType().equals(other.getTransType()))
            && (this.getTransAreaId() == null ? other.getTransAreaId() == null : this.getTransAreaId().equals(other.getTransAreaId()))
            && (this.getTransStatus() == null ? other.getTransStatus() == null : this.getTransStatus().equals(other.getTransStatus()))
            && (this.getCreatedAt() == null ? other.getCreatedAt() == null : this.getCreatedAt().equals(other.getCreatedAt()))
            && (this.getUpdatedAt() == null ? other.getUpdatedAt() == null : this.getUpdatedAt().equals(other.getUpdatedAt()))
            && (this.getRemarks() == null ? other.getRemarks() == null : this.getRemarks().equals(other.getRemarks()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getSaleUserId() == null) ? 0 : getSaleUserId().hashCode());
        result = prime * result + ((getBuyUserId() == null) ? 0 : getBuyUserId().hashCode());
        result = prime * result + ((getToySetId() == null) ? 0 : getToySetId().hashCode());
        result = prime * result + ((getBusiType() == null) ? 0 : getBusiType().hashCode());
        result = prime * result + ((getAmount() == null) ? 0 : getAmount().hashCode());
        result = prime * result + ((getBuyPrice() == null) ? 0 : getBuyPrice().hashCode());
        result = prime * result + ((getNewFlag() == null) ? 0 : getNewFlag().hashCode());
        result = prime * result + ((getTransPrice() == null) ? 0 : getTransPrice().hashCode());
        result = prime * result + ((getTransType() == null) ? 0 : getTransType().hashCode());
        result = prime * result + ((getTransAreaId() == null) ? 0 : getTransAreaId().hashCode());
        result = prime * result + ((getTransStatus() == null) ? 0 : getTransStatus().hashCode());
        result = prime * result + ((getCreatedAt() == null) ? 0 : getCreatedAt().hashCode());
        result = prime * result + ((getUpdatedAt() == null) ? 0 : getUpdatedAt().hashCode());
        result = prime * result + ((getRemarks() == null) ? 0 : getRemarks().hashCode());
        return result;
    }

    public UserBusiSetInfo id(Long value) {
        this.id = value;
        return this;
    }

    public UserBusiSetInfo saleUserId(String value) {
        this.saleUserId = value;
        return this;
    }

    public UserBusiSetInfo buyUserId(String value) {
        this.buyUserId = value;
        return this;
    }

    public UserBusiSetInfo toySetId(String value) {
        this.toySetId = value;
        return this;
    }

    public UserBusiSetInfo busiType(UserBusiSetInfoType value) {
        this.busiType = value;
        return this;
    }

    public UserBusiSetInfo amount(Integer value) {
        this.amount = value;
        return this;
    }

    public UserBusiSetInfo buyPrice(Double value) {
        this.buyPrice = value;
        return this;
    }

    public UserBusiSetInfo newFlag(UserBusiSetInfoNewFlag value) {
        this.newFlag = value;
        return this;
    }

    public UserBusiSetInfo transPrice(String value) {
        this.transPrice = value;
        return this;
    }

    public UserBusiSetInfo transType(UserBusiSetInfoTransType value) {
        this.transType = value;
        return this;
    }

    public UserBusiSetInfo transAreaId(String value) {
        this.transAreaId = value;
        return this;
    }

    public UserBusiSetInfo transStatus(UserBusiSetInfoTransStatus value) {
        this.transStatus = value;
        return this;
    }

    public UserBusiSetInfo createdAt(Date value) {
        this.createdAt = value;
        return this;
    }

    public UserBusiSetInfo updatedAt(Date value) {
        this.updatedAt = value;
        return this;
    }

    public UserBusiSetInfo remarks(String value) {
        this.remarks = value;
        return this;
    }
}